var dbmodel = require('../dbmodel/dbmodel.js');
var post = dbmodel.model('posts');

// 获取文章列表
exports.postListGet = function(req, res) {
	let query = post.find({});
	// 查找postID的关联集合 user
	query.populate('userID');
	// 排序方式 time 倒序
	query.sort({
		'createTime': -1
	});
	// 查询结果
	query.exec().then(function(e) {
		res.send({
			status: 200,
			info: e
		});
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
// 获取个人发布的文章列表
exports.userPostListGet = function(req, res) {
	let query = post.find({
		'userID': req.body.userID
	});
	// 查找postID的关联集合 user
	query.populate('userID');
	// 排序方式 time 倒序
	query.sort({
		'createTime': -1
	});
	// 查询结果
	query.exec().then(function(e) {
		res.send({
			status: 200,
			info: e
		});
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
// 获取文章列表(用于懒加载)
exports.postListGetLazy = function(req, res) {
	let query = post.find({});
	// 查找postID的关联集合 user
	query.populate('userID');
	// 排序方式 time 倒序
	query.sort({
		'createTime': -1
	});
	// 查询结果
	query.exec().then(function(e) {
		let out = []
		if (req.body.end > e.length - 1) {
			req.body.end = e.length
		}
		for (let i = req.body.start; i < req.body.end; i++) {
			out.push(e[i])
		}
		res.send({
			status: 200,
			info: out
		});
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
// 获取文章列表(可根据需求获得数据排序方式 且可以获取某几条)
exports.postListSmartGet = function(req, res) {
	let query = post.find({});
	// 查找postID的关联集合 user
	query.populate('userID');
	query.sort({
		[req.body.type]: req.body.typeValue
	});
	// 查询结果
	query.exec().then(function(e) {
		let out = []
		if (req.body.end > e.length - 1) {
			req.body.end = e.length - 1
		}
		for (let i = req.body.start; i < req.body.end; i++) {
			out.push(e[i])
		}
		res.send({
			status: 200,
			info: out
		});
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
// 文章获取
exports.postGet = function(req, res) {
	let wherestr = {
		'_id': req.body.postID
	}
	let query = post.find(wherestr);
	// 查找postID的关联集合 user
	query.populate('userID');

	// 查询结果
	query.exec().then(function(e) {
		res.send({
			status: 200,
			info: e
		});
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
// 文章发布
exports.postUpload = function(req, res) {
	let data = {
		userID: req.body.uid,
		title: req.body.title,
		text: req.body.text,
		html: req.body.html,
		pic: req.body.pic,
		like: 0,
		comment: 0,
		createTime: new Date()
	}

	let Post = new post(data)
	Post.save(function(err, result) {
		if (err) {
			res.send({
				status: 500,
				info: '文章上传失败'
			})
		} else {
			res.send({
				status: 200,
				info: '文章上传成功',
				aa: result
			})
		}
	})
}

// 更改文章的某个数据
exports.postInfoChange = function(req, res) {
	let wherestr = {
		'_id': req.body.postID
	}
	let query = post.find(wherestr);

	// 查询结果
	query.exec().then(function(e) {
		post.updateOne(wherestr, {
			[req.body.type]: req.body.value
		}, function(err, result) {
			if (err) {
				res.send({
					status: 500
				});
			} else {
				res.send({
					status: 200,
					info: '更改成功'
				})
			}
		})
	}).catch(function(err) {
		res.send({
			status: 500,
			err
		})
	})
}
